iT邦幫忙

2022 iThome 鐵人賽

DAY 24
0
Modern Web

Google商家大解密就靠網頁設計來加成系列 第 24

[Day24] 經濟部商業司Open API應用

  • 分享至 

  • xImage
  •  

為何需要使用經濟部商業司Open API

經濟部商業司是經濟部的業務單位之一,主要管理商業事務及公司設立登記等資訊,在前言中我們有提到這幾年因疫情的衝擊,台灣中小企業面臨各種窘境,因此造就了我們專案的誕生,藉由商業模式優化使中小企業提供新價值來吸引人流與商機。而在如此多的中小企業申請案件中,就需透過經濟部商業司的資訊來審核商家。

經濟部商業司Open API介紹

經濟部商業司共提供56支Open API查詢資料,所有的Open API都可以至經濟部商工行政資料開放平臺查詢,主要分為「公司登記」或「商業登記」兩大類別,可依據專案需求取得JsonXML格式資料,需特別注意的是經濟部商業司Open API有透過來源IP進行白名單管控,因此使用前需簽先填寫「經濟部商工行政資料開放平臺資料介接使用告知書」,經濟部商工行政資料開放平臺確認申請資料無誤後,會進行介接設定並發信通知該介接設定已完成。

經濟部商業司實際應用

我們前面有提到需透過經濟部商業司的資訊來審核商家,因此從「公司登記」或「商業登記」兩大類別中各選擇一支Open API作為審核商家的依據,分別是商業登記基本資料-應用三商業登記基本資料-應用三,在開發串接程式時,原以為只要使用Get Method組裝相關參數內容,就可以完成串接,但串接時卻一直得到「$filter參數有誤,請查明後繼續」的錯誤訊息,查了許久才發現是因為參數包含空白字元,所以在串接時需先針對$filter參數做前置處理,將「$filter=President_No eq 91308561」透過URL Encode後轉成「$filter=President_No%20eq%2091308561」,再重新組裝後便完成了Open API的串接。

private String getQueryString(Map<String, String> map) {
	StringBuffer sb = new StringBuffer();
	if (map != null) {
		Set<String> keyset = map.keySet();
		Iterator<String> it = keyset.iterator();
		while (it.hasNext()) {
			String key = (String) it.next();
			String value = (String) map.get(key);
			// 經濟部商業司API需將空白做URL Encode
			if ("$filter".equals(key)) {
				try {
					value = URLEncoder.encode(value, "UTF-8");
				} catch (Exception e) {
					log.info("Error:{}", e.getMessage(), e);
				}
			}
			sb.append("&" + key + "=" + value);
		}
	}
	String result = sb.toString().replaceFirst("&", "");
	return result;
}

上一篇
[Day23] Lombok 簡介
下一篇
[DAY25] 圖片類型判別(tika + ImageIo)
系列文
Google商家大解密就靠網頁設計來加成30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言